/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package xmlaufgabe7;

import model.DownloadModel;
import javax.swing.BoxLayout;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JProgressBar;

/**
 * Panel zur Anzeige des Downloadfortschritts der herunterzuladenden Dateien.
 * 
 * @author s0527676
 */
public class DownloadStatusPanel extends JPanel {
    /**
     * Speichert das zu Grunde liegende Model
     */
    private DownloadModel model;
    
    /**
     * Anzeigeelement fuer die Progressbar
     */
    private JProgressBar bar;
    
    /**
     * Standardkonstruktor, initialisiert alle Panelkomponenten und das Model.
     * 
     * @param model uebergebenes Model
     * @param index Index fuer die zu herunterladende Datei
     */
    public DownloadStatusPanel(DownloadModel model, int index) {
        this.model = model;
        
        this.setLayout(new BoxLayout(this, BoxLayout.PAGE_AXIS));
        bar = new JProgressBar();
        
        this.add(new JLabel(model.getURLByIndex(index)));
        this.add(bar);
        bar.setMinimum(0);
        bar.setMaximum(100);
    }

    /**
     * Aktualisiert den Status der JProgressBar.
     * 
     * @param index Index fuer die zu herunterladende Datei
     */
    public void update(int index) {
        int value = (int)(((double)model.getByteWritten() * 100) / (double)model.getFileSizes()[index]);
        bar.setValue(value);
    }
}
